class UserConfigData {
  Avatar? avatar;
  Nickname? nickname;
  Birthday? birthday;
  Occupation? occupation;

  UserConfigData({this.avatar, this.nickname, this.birthday, this.occupation});

  UserConfigData.fromJson(Map<String, dynamic> json) {
    if (json["avatar"] is Map) {
      avatar = json["avatar"] == null ? null : Avatar.fromJson(json["avatar"]);
    }
    if (json["nickname"] is Map) {
      nickname = json["nickname"] == null ? null : Nickname.fromJson(json["nickname"]);
    }
    if (json["birthday"] is Map) {
      birthday = json["birthday"] == null ? null : Birthday.fromJson(json["birthday"]);
    }
    if (json["occupation"] is Map) {
      occupation = json["occupation"] == null ? null : Occupation.fromJson(json["occupation"]);
    }
  }

  static List<UserConfigData> fromList(List<Map<String, dynamic>> list) {
    return list.map(UserConfigData.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    if (avatar != null) {
      json["avatar"] = avatar?.toJson();
    }
    if (nickname != null) {
      json["nickname"] = nickname?.toJson();
    }
    if (birthday != null) {
      json["birthday"] = birthday?.toJson();
    }
    if (occupation != null) {
      json["occupation"] = occupation?.toJson();
    }
    return json;
  }
}

class Occupation {
  String? title;
  String? value;
  int? view;
  int? edit;
  Subinfo1? subinfo;

  Occupation({this.title, this.value, this.view, this.edit, this.subinfo});

  Occupation.fromJson(Map<String, dynamic> json) {
    if (json["title"] is String) {
      title = json["title"];
    }
    if (json["value"] is String) {
      value = json["value"];
    }
    if (json["view"] is num) {
      view = (json["view"] as num).toInt();
    }
    if (json["edit"] is num) {
      edit = (json["edit"] as num).toInt();
    }
    if (json["subinfo"] is Map) {
      subinfo = json["subinfo"] == null ? null : Subinfo1.fromJson(json["subinfo"]);
    }
  }

  static List<Occupation> fromList(List<Map<String, dynamic>> list) {
    return list.map(Occupation.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["title"] = title;
    json["value"] = value;
    json["view"] = view;
    json["edit"] = edit;
    if (subinfo != null) {
      json["subinfo"] = subinfo?.toJson();
    }
    return json;
  }
}

class Subinfo1 {
  String? provId;
  String? cityId;

  Subinfo1({this.provId, this.cityId});

  Subinfo1.fromJson(Map<String, dynamic> json) {
    if (json["prov_id"] is String) {
      provId = json["prov_id"];
    }
    if (json["city_id"] is String) {
      cityId = json["city_id"];
    }
  }

  static List<Subinfo1> fromList(List<Map<String, dynamic>> list) {
    return list.map(Subinfo1.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["prov_id"] = provId;
    json["city_id"] = cityId;
    return json;
  }
}

class Birthday {
  String? title;
  String? value;
  int? view;
  int? edit;
  Subinfo? subinfo;
  Dict? dict;

  Birthday({this.title, this.value, this.view, this.edit, this.subinfo, this.dict});

  Birthday.fromJson(Map<String, dynamic> json) {
    if (json["title"] is String) {
      title = json["title"];
    }
    if (json["value"] is String) {
      value = json["value"];
    }
    if (json["view"] is num) {
      view = (json["view"] as num).toInt();
    }
    if (json["edit"] is num) {
      edit = (json["edit"] as num).toInt();
    }
    if (json["subinfo"] is Map) {
      subinfo = json["subinfo"] == null ? null : Subinfo.fromJson(json["subinfo"]);
    }
    if (json["dict"] is Map) {
      dict = json["dict"] == null ? null : Dict.fromJson(json["dict"]);
    }
  }

  static List<Birthday> fromList(List<Map<String, dynamic>> list) {
    return list.map(Birthday.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["title"] = title;
    json["value"] = value;
    json["view"] = view;
    json["edit"] = edit;
    if (subinfo != null) {
      json["subinfo"] = subinfo?.toJson();
    }
    if (dict != null) {
      json["dict"] = dict?.toJson();
    }
    return json;
  }
}

class Dict {
  Options? options;
  DefaultItem? defaults;

  Dict({this.options, this.defaults});

  Dict.fromJson(Map<String, dynamic> json) {
    if (json["options"] is Map) {
      options = json["options"] == null ? null : Options.fromJson(json["options"]);
    }
    if (json["default"] is Map) {
      defaults = json["default"] == null ? null : DefaultItem.fromJson(json["default"]);
    }
  }

  static List<Dict> fromList(List<Map<String, dynamic>> list) {
    return list.map(Dict.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    if (options != null) {
      json["options"] = options?.toJson();
    }
    if (defaults != null) {
      json["default"] = defaults?.toJson();
    }
    return json;
  }
}

class DefaultItem {
  int? year;
  int? month;
  int? day;

  DefaultItem({this.year, this.month, this.day});

  DefaultItem.fromJson(Map<String, dynamic> json) {
    if (json["year"] is num) {
      year = (json["year"] as num).toInt();
    }
    if (json["month"] is num) {
      month = (json["month"] as num).toInt();
    }
    if (json["day"] is num) {
      day = (json["day"] as num).toInt();
    }
  }

  static List<DefaultItem> fromList(List<Map<String, dynamic>> list) {
    return list.map(DefaultItem.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["year"] = year;
    json["month"] = month;
    json["day"] = day;
    return json;
  }
}

class Options {
  int? minyear;
  int? maxyear;

  Options({this.minyear, this.maxyear});

  Options.fromJson(Map<String, dynamic> json) {
    if (json["minyear"] is num) {
      minyear = (json["minyear"] as num).toInt();
    }
    if (json["maxyear"] is num) {
      maxyear = (json["maxyear"] as num).toInt();
    }
  }

  static List<Options> fromList(List<Map<String, dynamic>> list) {
    return list.map(Options.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["minyear"] = minyear;
    json["maxyear"] = maxyear;
    return json;
  }
}

class Subinfo {
  String? age;
  String? ctl;

  Subinfo({this.age, this.ctl});

  Subinfo.fromJson(Map<String, dynamic> json) {
    if (json["age"] is String) {
      age = json["age"];
    }
    if (json["ctl"] is String) {
      ctl = json["ctl"];
    }
  }

  static List<Subinfo> fromList(List<Map<String, dynamic>> list) {
    return list.map(Subinfo.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["age"] = age;
    json["ctl"] = ctl;
    return json;
  }
}

class Nickname {
  String? title;
  String? value;
  int? view;
  int? edit;
  int? maxnum;
  Btns? btns;

  Nickname({this.title, this.value, this.view, this.edit, this.maxnum, this.btns});

  Nickname.fromJson(Map<String, dynamic> json) {
    if (json["title"] is String) {
      title = json["title"];
    }
    if (json["value"] is String) {
      value = json["value"];
    }
    if (json["view"] is num) {
      view = (json["view"] as num).toInt();
    }
    if (json["edit"] is num) {
      edit = (json["edit"] as num).toInt();
    }
    if (json["maxnum"] is num) {
      maxnum = (json["maxnum"] as num).toInt();
    }
    if (json["btns"] is Map) {
      btns = json["btns"] == null ? null : Btns.fromJson(json["btns"]);
    }
  }

  static List<Nickname> fromList(List<Map<String, dynamic>> list) {
    return list.map(Nickname.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["title"] = title;
    json["value"] = value;
    json["view"] = view;
    json["edit"] = edit;
    json["maxnum"] = maxnum;
    if (btns != null) {
      json["btns"] = btns?.toJson();
    }
    return json;
  }
}

class Btns {
  String? key;
  String? title;
  int? view;
  dynamic display;
  Click? click;

  Btns({this.key, this.title, this.view, this.display, this.click});

  Btns.fromJson(Map<String, dynamic> json) {
    if (json["key"] is String) {
      key = json["key"];
    }
    if (json["title"] is String) {
      title = json["title"];
    }
    if (json["view"] is num) {
      view = (json["view"] as num).toInt();
    }
    display = json["display"];
    if (json["click"] is Map) {
      click = json["click"] == null ? null : Click.fromJson(json["click"]);
    }
  }

  static List<Btns> fromList(List<Map<String, dynamic>> list) {
    return list.map(Btns.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["key"] = key;
    json["title"] = title;
    json["view"] = view;
    json["display"] = display;
    if (click != null) {
      json["click"] = click?.toJson();
    }
    return json;
  }
}

class Click {
  String? react;
  String? jump;
  Params? params;

  Click({this.react, this.jump, this.params});

  Click.fromJson(Map<String, dynamic> json) {
    if (json["react"] is String) {
      react = json["react"];
    }
    if (json["jump"] is String) {
      jump = json["jump"];
    }
    if (json["params"] is Map) {
      params = json["params"] == null ? null : Params.fromJson(json["params"]);
    }
  }

  static List<Click> fromList(List<Map<String, dynamic>> list) {
    return list.map(Click.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["react"] = react;
    json["jump"] = jump;
    if (params != null) {
      json["params"] = params?.toJson();
    }
    return json;
  }
}

class Params {
  Value? value;

  Params({this.value});

  Params.fromJson(Map<String, dynamic> json) {
    if (json["value"] is Map) {
      value = json["value"] == null ? null : Value.fromJson(json["value"]);
    }
  }

  static List<Params> fromList(List<Map<String, dynamic>> list) {
    return list.map(Params.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    if (value != null) {
      json["value"] = value?.toJson();
    }
    return json;
  }
}

class Value {
  String? desc;
  int? vipkind;

  Value({this.desc, this.vipkind});

  Value.fromJson(Map<String, dynamic> json) {
    if (json["desc"] is String) {
      desc = json["desc"];
    }
    if (json["vipkind"] is num) {
      vipkind = (json["vipkind"] as num).toInt();
    }
  }

  static List<Value> fromList(List<Map<String, dynamic>> list) {
    return list.map(Value.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["desc"] = desc;
    json["vipkind"] = vipkind;
    return json;
  }
}

class Avatar {
  String? title;
  String? value;
  int? edit;
  int? view;
  int? maxsize;

  Avatar({this.title, this.value, this.edit, this.view, this.maxsize});

  Avatar.fromJson(Map<String, dynamic> json) {
    if (json["title"] is String) {
      title = json["title"];
    }
    if (json["value"] is String) {
      value = json["value"];
    }
    if (json["edit"] is num) {
      edit = (json["edit"] as num).toInt();
    }
    if (json["view"] is num) {
      view = (json["view"] as num).toInt();
    }
    if (json["maxsize"] is num) {
      maxsize = (json["maxsize"] as num).toInt();
    }
  }

  static List<Avatar> fromList(List<Map<String, dynamic>> list) {
    return list.map(Avatar.fromJson).toList();
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> json = <String, dynamic>{};
    json["title"] = title;
    json["value"] = value;
    json["edit"] = edit;
    json["view"] = view;
    json["maxsize"] = maxsize;
    return json;
  }
}
